home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 2 / Atari Mega Archive CD - Volume 2.iso / 8bit / cislib_a / bakact.xmo < prev    next >
Text File  |  1995-04-22  |  21KB  |  1 lines

  1.  ¢MODULE; BACKTRAK.ACT¢      ; by Sam Teague¢¢BYTE Stick0=$278, Trig0=$D010,¢     ChBas=$2F4, Time=$14,¢     MemTop=$6A, Color0=$2C4,¢     Color1=$2C5, Color2=$2C6,¢     Color3=$2C7, Color4=$2C8,¢     GraCtl=$D01D, GPrior=$26F,¢     SDmaCtl=$22F, PMBase=$D407,   ¢     Nmien=$D40E, WSync=$D40A,¢     Con=$D01F, Atract=$4D,¢     HPos0=$D000, HPos1=$D001,¢     HPos2=$D002, HPos3=$D003,¢     PMColor0=$2C0, PMColor1=$2C1,¢     PMColor2=$2C2, PMColor3=$2C3,¢     P0PF=$D004, P2PF=$D006,¢     P3PF=$D007, P0PL=$D00C,¢     HPosM0=$D004, HPosM1=$D005,¢     HPosM2=$D006, HPosM3=$D007,¢     HitClr=$D01E, CrSinh=$2F0,¢     StickFlag, SpaceFlag,¢     Dots, OldMemTop, Screen, Speed,¢     X, Y, X0, Y0, X1, Y1, X2, Y2,¢     X3, Y3, OldX0, OldY0, OldX2,¢     OldY2, OldX3, OldY3,¢     RobotCount1, RobotCount2,     ¢     BirdCount, Image0, Image1,¢     DotSound, BonusSound, DoorSound,¢     Lives, StartSpeed ¢¢INT  RobotSpeed1, RobotSpeed2,¢     BirdDist, RobotDist1,¢     RobotDist2, Score, HighScore ¢¢CARD VDsLst=$200, SDLst=$230,¢     ScRam=$58 ¢¢BYTE POINTER PMRam, Player0, Player1,¢             Player2, Player3,¢             MissleBase¢¢BYTE ARRAY String(10)¢¢; GOOD GUY PLAYER¢BYTE ARRAY¢ Player0Data0= ;DOWN¢ [0 0 0 24 36 36 36 24 60 24 0 0 0 0],¢ Player0Data1= ;UP¢ [0 0 0 24 60 60 60 24 60 24 0 0 0 0],¢ Player0Data2= ;LEFT¢ [0 0 0 24 44 44 44 24 56 24 0 0 0 0],¢ Player0Data3= ;RIGHT¢ [0 0 0 24 52 52 52 24 28 24 0 0 0 0]¢  ¢; BIRD PLAYER¢BYTE ARRAY¢ Player1Data0=¢ [0 0 0 24 36 60 24 219¢  126 60 36 0 0 0],¢ Player1Data1=¢ [0 0 0 24 36 60 24 24¢  126 255 36 0 0 0],¢ Player1Data2=¢ [0 0 0 24 36 60 24 24¢  255 60 36 0 0 0]¢¢; ROBOT PLAYER¢BYTE ARRAY¢ Player2Data0=¢ [0 0 0 255 152 60 102¢  219 189 36 66 0 0 0],¢ Player2Data1=¢ [0 0 0 60 56 60 102 219¢  189 36 24 0 0 0],¢ Player2Data2=¢ [0 0 0 255 29 60 102 219¢  189 36 24 0 0 0],¢ Player2Data3=¢ [0 0 0 60 28 60 102 219¢  189 36 36 0 0 0]¢¢;FACE, HANDS & FEET PLAYER¢BYTE ARRAY¢ Player3Data0=¢ [0 0 0 0 36 36 36 0 189 0 153 0 0 0],¢ Player3Data1=¢ [0 0 0 0 36 36 36 0 189 0 153 0 0 0],¢ Player3Data2=¢ [0 0 0 0 36 36 36 0 1 0 44 0 0 0],¢ Player3Data3=¢ [0 0 0 0 36 36 36 0 128 0 52 0 0 0]¢¢CARD ARRAY PMData0(4), PMData1(4),¢           PMData2(4), PMData3(4),¢           MissleData(4)¢¢PROC Move_Set()¢ BYTE i, chnum, bit¢ BYTE POINTER base, dest¢ BYTE ARRAY chars=¢  [ 255 255 255 255 255 255 255 255¢    127 127 127 127 127 127 127 0¢    0 254 254 254 254 254 254 254¢    254 254 254 254 254 254 254 0¢    0 127 127 127 127 127 127 127¢    0 255 255 255 255 255 255 255¢    127 127 127 127 127 127 127 127¢    254 254 254 254 254 254 254 254¢    0 90 60 66 66 60 90 0¢    0 255 231 129 129 231 255 0¢    0 254 254 254 254 254 254 0¢    0 0 0 24 36 24 0 0              ¢    0 126 126 126 126 126 126 126¢    126 126 126 126 126 126 126 0¢    0 127 127 127 127 127 127 0¢    0 255 255 255 255 255 255 0¢    126 126 126 126 126 126 126 126¢    255 255 255 255 255 255 255 0  ¢    0 24 24 126 24 60 102 0]¢  MemTop==-8¢  Graphics(17)¢  SDmaCtl=0¢  base=(MemTop)*$100¢  MoveBlock(base,$E000,$400)¢  bit=0¢  chnum=1¢  DO¢   dest=base+8*chnum¢    FOR i=0 TO 7      ¢     DO               ¢      dest^=chars(bit)¢      dest==+1 bit==+1¢     OD¢   IF chnum=1 THEN chnum=3¢   ELSEIF chnum<12 THEN chnum==+1¢   ELSEIF chnum=12 THEN chnum=14¢   ELSEIF chnum=14 THEN chnum=15¢   ELSEIF chnum=15 THEN chnum=26¢   ELSEIF chnum=26 THEN chnum=27¢   ELSEIF chnum=27 THEN chnum=29¢   ELSEIF chnum=29 THEN chnum=30¢   ELSEIF chnum=30 THEN chnum=32¢   ELSEIF chnum=32 THEN chnum=56 ¢   ELSEIF chnum=56 THEN chnum=57 ¢   FI                         ¢  UNTIL chnum>56¢  OD¢RETURN¢¢PROC Dli=*()¢ BYTE color1=$D017, color2=$D018¢  [$48        ; PHA¢   $8D WSync] ; STA WSync¢  color1=14   ; Luminance¢  color2=4    ; Gray background¢  [$68        ; PLA¢   $40]       ; RTI¢¢PROC SetDLI()¢  VDsLst=Dli¢  Nmien=$C0¢RETURN¢¢PROC Delay(BYTE jiffies)¢  jiffies==+Time¢  DO UNTIL jiffies=Time OD¢RETURN¢¢BYTE FUNC CheckLocate(BYTE x0,y0)¢ BYTE errflag¢  errflag=0¢  IF x0>53 AND x0<200 AND y0>26¢   AND y0<200 THEN¢    errflag=1¢  FI¢RETURN(errflag)¢¢PROC Song()¢ BYTE ctr¢  FOR ctr=1 TO 2¢   DO                   ¢    Sound(0,108,10,8) Delay(18)¢    Sound(0,96,10,8) Delay(9)¢    Sound(0,91,10,8) Delay(9) ¢    Sound(0,81,10,8) Delay(18)¢    Sound(0,91,10,8) Delay(9) ¢    Sound(0,96,10,8) Delay(9) ¢   OD¢    Sound(0,121,10,8) Delay(18)¢    Sound(0,108,10,8) Delay(9) ¢    Sound(0,96,10,8) Delay(9) ¢    Sound(0,91,10,8) Delay(18)¢    Sound(0,96,10,8) Delay(9) ¢    Sound(0,108,10,8) Delay(9) ¢    Sound(0,121,10,8) Delay(54)¢    Sound(0,0,0,0) Delay(10)¢RETURN¢¢PROC Color(BYTE C0, BYTE C1, BYTE C2,¢           BYTE C3, BYTE C4)¢  Color0=C0              ¢  Color1=C1              ¢  Color2=C2    ¢  Color3=C3    ¢  Color4=C4 ¢RETURN¢¢PROC Sype(BYTE ARRAY temp_str¢          BYTE POINTER address)¢ BYTE i         ¢ BYTE ARRAY ataint=[$40 $00 $20 $60]¢  FOR i=1 TO temp_str(0)¢   DO¢    IF temp_str(i)#155 THEN¢     address^=ataint((temp_str(i)¢     RSH 5)&3)%(temp_str(i)&$9F)¢     address==+1¢    FI¢   OD¢RETURN¢ ¢PROC High_Score()¢  StrI(HighScore,String)¢  Sype(String,ScRam+493)¢  Sype("        ",ScRam+468)¢RETURN¢¢PROC BGNoise()¢ BYTE N=[40], S=[50], bgcount=[0]¢  bgcount==+1         ¢  IF bgcount=5 THEN¢   Sound(0,N,10,2) ¢   N==+2¢    IF N>=S THEN¢     N==-4¢     S=N¢      IF S=40 THEN¢       S=50 ¢      FI¢    FI¢   bgcount=0¢  FI¢RETURN¢¢¢¢PROC Inst()¢  Graphics(0)¢  CrSinh=1¢  Color(0,8,0,8,0)¢     SDmaCtl=$00¢     Position(0,1) Print(" ")¢      Sype("אIJביקפIJבי",ScRam+14)¢      Sype("Your Mission is to get all of the",ScRam+81)¢      Sype("pulsating globules in the maze with",ScRam+121)¢      Sype("as little backtracking as possible.",ScRam+161)¢      Sype("Each globule is worth one point. Each",ScRam+201)¢      Sype("empty space will cost you one point.",ScRam+241)¢      Sype("You have 3 lives. If you touch one of",ScRam+281)¢      Sype("the robots you lose a life. An extra  ",ScRam+321)¢      Sype("life is awarded at 3,000 points. If",ScRam+361)¢      Sype("you touch the bird it will cost you 50",ScRam+401)¢      Sype("points. If you open one of the doors",ScRam+441)¢      Sype("in the walls you will recieve 100 extra",ScRam+481)¢      Sype("points. If you touch a multi-color  ",ScRam+521)¢      Sype("bonus globule your score is increased",ScRam+561)¢      Sype("by the number of globules you've   ",ScRam+601)¢      Sype("already gotten on that maze. You must  ",ScRam+641)¢      Sype("return to home base after getting all ",ScRam+681)¢      Sype("the globules. There are 3 screens. ",ScRam+721)¢      Sype("When you finish screen 3 you are   ",ScRam+761)¢      Sype("returned to screen 1 and the action  ",ScRam+801)¢      Sype("speeds up. Press the fire button to  ",ScRam+841)¢      Sype("pause. Move the stick to resume play.",ScRam+881)¢      Sype("         PRESS צקIJפק FOR GAME.",ScRam+921)¢     SDmaCtl=62¢     DO¢     UNTIL Con=6¢     OD¢     DO¢     UNTIL Con#6¢     OD¢RETURN¢¢¢¢PROC Title()¢  Graphics(17)¢  Color(118,50,22,8,0)¢  Sype("BACK TRACK",ScRam+65)¢  Sype("by",ScRam+149)¢  Sype("sam teague",ScRam+165)¢  Sype("≡≥σ≤≤á∩≡⌠Θ∩∈",ScRam+304)¢  Sype("הנפááכדשדכ",ScRam+325)¢  Sype("≡≥σ≤≤á≤σ∮σπ⌠",ScRam+364)¢  Sype("הנפáחמצקפרבקחנמצ",ScRam+382)¢  Sype("≡≥σ≤≤áá≤⌠β≥⌠",ScRam+424)¢  Sype("קנááסכIJך",ScRam+446)¢  Speed=3¢   DO¢   UNTIL Con#6¢   OD¢   DO¢    Delay(10)¢     IF Con=3 THEN¢      Sype("            ",ScRam+244)¢      Speed==-1¢       IF Speed=0 THEN¢        Speed=3¢       FI¢     FI¢     IF Speed=3 THEN¢      Sype("BEGINNER",ScRam+246)¢     ELSEIF Speed=2 THEN¢      Sype("INTERMEDIATE",ScRam+244)¢     ELSEIF Speed=1 THEN¢      Sype("ADVANCED",ScRam+246)¢     FI¢   IF Con=5 THEN Inst() EXIT FI¢    UNTIL Con=6 OR Trig0=0¢   OD¢  StartSpeed=Speed¢   DO¢   UNTIL Con#6 AND Trig0#0¢   OD¢RETURN¢¢PROC Reset()¢  Zero(PMRam+$300,$500)¢  X0=64 Y0=197 X1=47 Y1=29 X2=88¢  Y2=101 X3=160 Y3=101¢  RobotSpeed1=4  RobotSpeed2=4¢  RobotDist1=0 RobotDist2=0¢  RobotCount1=7 RobotCount2=7¢  OldX0=X0 OldY0=Y0 OldX2=X2 OldY2=Y2¢  OldX3=X3 OldY3=Y3 BirdCount=0¢  BirdDist=0 StickFlag=7¢  Image0=0 Image1=0¢  DotSound=0 BonusSound=0 DoorSound=0¢RETURN¢¢PROC Hit_Bad_Guy()¢  SndRst()¢  DoorSound=0 BonusSound=0¢  So